package org.ysu.shoeShopping.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.ysu.shoeShopping.dto.OrderRequest;
import org.ysu.shoeShopping.entity.Orders;
import java.util.List;

/**
 * 订单表(Orders)表服务接口
 *
 * @author makejava
 * @since 2025-09-13 16:56:58
 */
public interface OrdersService {

    /**
     * 通过ID查询单条数据
     *
     * @param oid 主键
     * @return 实例对象
     */
    Orders queryById(Integer oid);

    /**
     * 分页查询
     *
     * @param orders 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    Page<Orders> queryByPage(Orders orders, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param orders 实例对象
     * @return 实例对象
     */
    Orders insert(Orders orders);

    /**
     * 修改数据
     *
     * @param orders 实例对象
     * @return 实例对象
     */
    Orders update(Orders orders);

    /**
     * 通过主键删除数据
     *
     * @param oid 主键
     * @return 是否成功
     */
    boolean deleteById(Integer oid);

    /**
     * 根据用户ID查询订单详情列表
     *
     * @param userId 用户ID
     * @return 订单详情列表
     */
    List<Orders> findByUserId(Integer userId);

    /**
     * 根据用户ID查询购物车订单（状态为0的订单）
     *
     * @param userId 用户ID
     * @return 购物车订单列表
     */
    List<Orders> findCartOrdersByUid(Integer userId);

    List<Orders> findCartOrdersAll();

    /**
     * 创建订单
     *
     * @param orderRequest 订单请求信息
     * @return 创建的订单
     */
    Orders createOrder(OrderRequest orderRequest);
}
